import request from '@/utils/request'

/**
 * 获取站点下拉列表
 * @returns {Promise} 请求结果
 */
export function getSiteList() {
  return request({
    url: '/operation/web/details/siteList',
    method: 'get'
  })
}

/**
 * 获取成本类别下拉列表
 * @returns {Promise} 请求结果
 */
export function getCostCategoryList() {
  return request({
    url: '/operation/web/details/costCategoryList',
    method: 'get'
  })
}

/**
 * 获取成本统计
 * @param {Object} params 查询参数
 * @param {number} [params.siteId] 站点ID
 * @param {string} [params.dateDimension] 日期维度 1-日 2-月 3-年
 * @param {string} [params.date] 日期
 * @returns {Promise} 请求结果
 */
export function getCostStatistics(params) {
  return request({
    url: '/operation/web/details/costStatistics',
    method: 'get',
    params
  })
}

/**
 * 查询成本详细列表
 * @param {Object} params 查询参数
 * @param {number} [params.siteId] 站点ID
 * @param {string} [params.dateDimension] 日期维度 1-日 2-月 3-年
 * @param {string} [params.date] 日期
 * @returns {Promise} 请求结果
 */
export function getCostDetails(params) {
  return request({
    url: '/operation/web/details/list',
    method: 'get',
    params
  })
}

/**
 * 获取成本详细详细信息
 * @param {number} id 成本详细ID
 * @returns {Promise} 请求结果
 */
export function getCostDetail(id) {
  return request({
    url: `/operation/web/details/${id}`,
    method: 'get'
  })
}

/**
 * 新增成本详细
 * @param {Object} data 成本详细数据
 * @param {string} data.costCategory 成本类别
 * @param {string} data.costItem 成本项目
 * @param {number} data.unitPrice 单价(元)
 * @param {number} data.consumption 消耗量
 * @param {number} data.totalPrice 总价(元)
 * @param {string} data.dataSource 数据来源
 * @param {string} data.inputTime 录入时间
 * @returns {Promise} 请求结果
 */
export function addCostDetail(data) {
  return request({
    url: '/operation/web/details',
    method: 'post',
    data
  })
}

/**
 * 修改成本详细
 * @param {Object} data 成本详细数据
 * @param {number} data.id 成本详细ID
 * @param {string} data.costCategory 成本类别
 * @param {string} data.costItem 成本项目
 * @param {number} data.unitPrice 单价(元)
 * @param {number} data.consumption 消耗量
 * @param {number} data.totalPrice 总价(元)
 * @param {string} data.dataSource 数据来源
 * @param {string} data.inputTime 录入时间
 * @returns {Promise} 请求结果
 */
export function updateCostDetail(data) {
  return request({
    url: '/operation/web/details',
    method: 'put',
    data
  })
}

/**
 * 删除成本详细
 * @param {Array<number>} ids 成本详细ID数组
 * @returns {Promise} 请求结果
 */
export function deleteCostDetail(ids) {
  return request({
    url: `/operation/web/details/${ids}`,
    method: 'delete'
  })
}